package com.newmacys.bag;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.tiles.TilesContainer;
import org.apache.tiles.access.TilesAccess;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

/**
 * Servlet implementation class ViewBagManager
 */
public class ViewBagManager extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ViewBagManager() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		processRequest(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		processRequest(request, response);
	}

	private void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		//This is the simplest way to get a spring context. 
		//ApplicationContext context = new ClassPathXmlApplicationContext( "masterAppContext.xml" );
		ApplicationContext context = ContextLoader.getCurrentWebApplicationContext();
		BagBean bag = ( BagBean ) context.getBean( "BagBean" );

		TilesContainer container = TilesAccess.getContainer(
		        request.getSession().getServletContext());

		System.out.println( bag.getTilesView() );
		container.render(bag.getTilesView(), request, response);

	}
	
}